package sseGameApps.model.mdkbr;

import java.io.Serializable;
import java.util.Date;

import com.google.appengine.api.datastore.Key;

import org.slim3.datastore.Attribute;
import org.slim3.datastore.Model;
import org.slim3.datastore.ModificationDate;

@Model(schemaVersion = 1)
public class MdUseKanji implements Serializable {

    private static final long serialVersionUID = 1L;

    @Attribute(primaryKey = true)
    private Key key;

    @Attribute(version = true)
    private Long version;

    private String userId;

    @Attribute(listener = ModificationDate.class)
    private Date updatedAt;

    @Attribute(unindexed = true)
    private Key holderKey01;

    @Attribute(unindexed = true)
    private Key holderKey02;

    @Attribute(unindexed = true)
    private Key holderKey03;

    @Attribute(unindexed = true)
    private Key holderKey04;

    @Attribute(unindexed = true)
    private Key holderKey05;

    @Attribute(unindexed = true)
    private Key holderKey06;

    @Attribute(unindexed = true)
    private Key holderKey07;

    @Attribute(unindexed = true)
    private Key holderKey08;

    @Attribute(unindexed = true)
    private Key holderKey09;

    @Attribute(unindexed = true)
    private Key holderKey10;

    @Attribute(unindexed = true)
    private Key holderKey11;

    @Attribute(unindexed = true)
    private Key holderKey12;

    @Attribute(unindexed = true)
    private Key holderKey13;

    @Attribute(unindexed = true)
    private Key holderKey14;

    @Attribute(unindexed = true)
    private Key holderKey15;

    @Attribute(unindexed = true)
    private Key holderKey16;

    @Attribute(unindexed = true)
    private Key holderKey17;

    @Attribute(unindexed = true)
    private Key holderKey18;

    @Attribute(unindexed = true)
    private Key holderKey19;

    @Attribute(unindexed = true)
    private Key holderKey20;

    @Attribute(unindexed = true)
    private String holderKanji01;

    @Attribute(unindexed = true)
    private String holderKanji02;

    @Attribute(unindexed = true)
    private String holderKanji03;

    @Attribute(unindexed = true)
    private String holderKanji04;

    @Attribute(unindexed = true)
    private String holderKanji05;

    @Attribute(unindexed = true)
    private String holderKanji06;

    @Attribute(unindexed = true)
    private String holderKanji07;

    @Attribute(unindexed = true)
    private String holderKanji08;

    @Attribute(unindexed = true)
    private String holderKanji09;

    @Attribute(unindexed = true)
    private String holderKanji10;

    @Attribute(unindexed = true)
    private String holderKanji11;

    @Attribute(unindexed = true)
    private String holderKanji12;

    @Attribute(unindexed = true)
    private String holderKanji13;

    @Attribute(unindexed = true)
    private String holderKanji14;

    @Attribute(unindexed = true)
    private String holderKanji15;

    @Attribute(unindexed = true)
    private String holderKanji16;

    @Attribute(unindexed = true)
    private String holderKanji17;

    @Attribute(unindexed = true)
    private String holderKanji18;

    @Attribute(unindexed = true)
    private String holderKanji19;

    @Attribute(unindexed = true)
    private String holderKanji20;

    @Attribute(unindexed = true)
    private Key usingkanjiKey01;

    @Attribute(unindexed = true)
    private Key usingkanjiKey02;

    @Attribute(unindexed = true)
    private Key usingkanjiKey03;

    @Attribute(unindexed = true)
    private String usingKanji01;

    @Attribute(unindexed = true)
    private String usingKanji02;

    @Attribute(unindexed = true)
    private String usingKanji03;

    @Attribute(unindexed = true)
    private String usingKanjiType01;

    @Attribute(unindexed = true)
    private String usingKanjiType02;

    @Attribute(unindexed = true)
    private String usingKanjiType03;

    @Attribute(unindexed = true)
    private String usingKanjiTypeText01;

    @Attribute(unindexed = true)
    private String usingKanjiTypeText02;

    @Attribute(unindexed = true)
    private String usingKanjiTypeText03;

    private Integer userBp;

    private Integer userAp;

    /**
     * Returns the key.
     *
     * @return the key
     */
    public Key getKey() {
        return key;
    }

    /**
     * Sets the key.
     *
     * @param key
     *            the key
     */
    public void setKey(Key key) {
        this.key = key;
    }

    /**
     * Returns the version.
     *
     * @return the version
     */
    public Long getVersion() {
        return version;
    }

    /**
     * Sets the version.
     *
     * @param version
     *            the version
     */
    public void setVersion(Long version) {
        this.version = version;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Key getHolderKey01() {
        return holderKey01;
    }

    public void setHolderKey01(Key holderKey01) {
        this.holderKey01 = holderKey01;
    }

    public Key getHolderKey02() {
        return holderKey02;
    }

    public void setHolderKey02(Key holderKey02) {
        this.holderKey02 = holderKey02;
    }

    public Key getHolderKey03() {
        return holderKey03;
    }

    public void setHolderKey03(Key holderKey03) {
        this.holderKey03 = holderKey03;
    }

    public Key getHolderKey04() {
        return holderKey04;
    }

    public void setHolderKey04(Key holderKey04) {
        this.holderKey04 = holderKey04;
    }

    public Key getHolderKey05() {
        return holderKey05;
    }

    public void setHolderKey05(Key holderKey05) {
        this.holderKey05 = holderKey05;
    }

    public Key getHolderKey06() {
        return holderKey06;
    }

    public void setHolderKey06(Key holderKey06) {
        this.holderKey06 = holderKey06;
    }

    public Key getHolderKey07() {
        return holderKey07;
    }

    public void setHolderKey07(Key holderKey07) {
        this.holderKey07 = holderKey07;
    }

    public Key getHolderKey08() {
        return holderKey08;
    }

    public void setHolderKey08(Key holderKey08) {
        this.holderKey08 = holderKey08;
    }

    public Key getHolderKey09() {
        return holderKey09;
    }

    public void setHolderKey09(Key holderKey09) {
        this.holderKey09 = holderKey09;
    }

    public Key getHolderKey10() {
        return holderKey10;
    }

    public void setHolderKey10(Key holderKey10) {
        this.holderKey10 = holderKey10;
    }

    public Key getHolderKey11() {
        return holderKey11;
    }

    public void setHolderKey11(Key holderKey11) {
        this.holderKey11 = holderKey11;
    }

    public Key getHolderKey12() {
        return holderKey12;
    }

    public void setHolderKey12(Key holderKey12) {
        this.holderKey12 = holderKey12;
    }

    public Key getHolderKey13() {
        return holderKey13;
    }

    public void setHolderKey13(Key holderKey13) {
        this.holderKey13 = holderKey13;
    }

    public Key getHolderKey14() {
        return holderKey14;
    }

    public void setHolderKey14(Key holderKey14) {
        this.holderKey14 = holderKey14;
    }

    public Key getHolderKey15() {
        return holderKey15;
    }

    public void setHolderKey15(Key holderKey15) {
        this.holderKey15 = holderKey15;
    }

    public Key getHolderKey16() {
        return holderKey16;
    }

    public void setHolderKey16(Key holderKey16) {
        this.holderKey16 = holderKey16;
    }

    public Key getHolderKey17() {
        return holderKey17;
    }

    public void setHolderKey17(Key holderKey17) {
        this.holderKey17 = holderKey17;
    }

    public Key getHolderKey18() {
        return holderKey18;
    }

    public void setHolderKey18(Key holderKey18) {
        this.holderKey18 = holderKey18;
    }

    public Key getHolderKey19() {
        return holderKey19;
    }

    public void setHolderKey19(Key holderKey19) {
        this.holderKey19 = holderKey19;
    }

    public Key getHolderKey20() {
        return holderKey20;
    }

    public void setHolderKey20(Key holderKey20) {
        this.holderKey20 = holderKey20;
    }

    public String getHolderKanji01() {
        return holderKanji01;
    }

    public void setHolderKanji01(String holderKanji01) {
        this.holderKanji01 = holderKanji01;
    }

    public String getHolderKanji02() {
        return holderKanji02;
    }

    public void setHolderKanji02(String holderKanji02) {
        this.holderKanji02 = holderKanji02;
    }

    public String getHolderKanji03() {
        return holderKanji03;
    }

    public void setHolderKanji03(String holderKanji03) {
        this.holderKanji03 = holderKanji03;
    }

    public String getHolderKanji04() {
        return holderKanji04;
    }

    public void setHolderKanji04(String holderKanji04) {
        this.holderKanji04 = holderKanji04;
    }

    public String getHolderKanji05() {
        return holderKanji05;
    }

    public void setHolderKanji05(String holderKanji05) {
        this.holderKanji05 = holderKanji05;
    }

    public String getHolderKanji06() {
        return holderKanji06;
    }

    public void setHolderKanji06(String holderKanji06) {
        this.holderKanji06 = holderKanji06;
    }

    public String getHolderKanji07() {
        return holderKanji07;
    }

    public void setHolderKanji07(String holderKanji07) {
        this.holderKanji07 = holderKanji07;
    }

    public String getHolderKanji08() {
        return holderKanji08;
    }

    public void setHolderKanji08(String holderKanji08) {
        this.holderKanji08 = holderKanji08;
    }

    public String getHolderKanji09() {
        return holderKanji09;
    }

    public void setHolderKanji09(String holderKanji09) {
        this.holderKanji09 = holderKanji09;
    }

    public String getHolderKanji10() {
        return holderKanji10;
    }

    public void setHolderKanji10(String holderKanji10) {
        this.holderKanji10 = holderKanji10;
    }

    public String getHolderKanji11() {
        return holderKanji11;
    }

    public void setHolderKanji11(String holderKanji11) {
        this.holderKanji11 = holderKanji11;
    }

    public String getHolderKanji12() {
        return holderKanji12;
    }

    public void setHolderKanji12(String holderKanji12) {
        this.holderKanji12 = holderKanji12;
    }

    public String getHolderKanji13() {
        return holderKanji13;
    }

    public void setHolderKanji13(String holderKanji13) {
        this.holderKanji13 = holderKanji13;
    }

    public String getHolderKanji14() {
        return holderKanji14;
    }

    public void setHolderKanji14(String holderKanji14) {
        this.holderKanji14 = holderKanji14;
    }

    public String getHolderKanji15() {
        return holderKanji15;
    }

    public void setHolderKanji15(String holderKanji15) {
        this.holderKanji15 = holderKanji15;
    }

    public String getHolderKanji16() {
        return holderKanji16;
    }

    public void setHolderKanji16(String holderKanji16) {
        this.holderKanji16 = holderKanji16;
    }

    public String getHolderKanji17() {
        return holderKanji17;
    }

    public void setHolderKanji17(String holderKanji17) {
        this.holderKanji17 = holderKanji17;
    }

    public String getHolderKanji18() {
        return holderKanji18;
    }

    public void setHolderKanji18(String holderKanji18) {
        this.holderKanji18 = holderKanji18;
    }

    public String getHolderKanji19() {
        return holderKanji19;
    }

    public void setHolderKanji19(String holderKanji19) {
        this.holderKanji19 = holderKanji19;
    }

    public String getHolderKanji20() {
        return holderKanji20;
    }

    public void setHolderKanji20(String holderKanji20) {
        this.holderKanji20 = holderKanji20;
    }

    public Key getUsingkanjiKey01() {
        return usingkanjiKey01;
    }

    public void setUsingkanjiKey01(Key usingkanjiKey01) {
        this.usingkanjiKey01 = usingkanjiKey01;
    }

    public Key getUsingkanjiKey02() {
        return usingkanjiKey02;
    }

    public void setUsingkanjiKey02(Key usingkanjiKey02) {
        this.usingkanjiKey02 = usingkanjiKey02;
    }

    public Key getUsingkanjiKey03() {
        return usingkanjiKey03;
    }

    public void setUsingkanjiKey03(Key usingkanjiKey03) {
        this.usingkanjiKey03 = usingkanjiKey03;
    }

    public String getUsingKanji01() {
        return usingKanji01;
    }

    public void setUsingKanji01(String usingKanji01) {
        this.usingKanji01 = usingKanji01;
    }

    public String getUsingKanji02() {
        return usingKanji02;
    }

    public void setUsingKanji02(String usingKanji02) {
        this.usingKanji02 = usingKanji02;
    }

    public String getUsingKanji03() {
        return usingKanji03;
    }

    public void setUsingKanji03(String usingKanji03) {
        this.usingKanji03 = usingKanji03;
    }

    public String getUsingKanjiType01() {
        return usingKanjiType01;
    }

    public void setUsingKanjiType01(String usingKanjiType01) {
        this.usingKanjiType01 = usingKanjiType01;
    }

    public String getUsingKanjiType02() {
        return usingKanjiType02;
    }

    public void setUsingKanjiType02(String usingKanjiType02) {
        this.usingKanjiType02 = usingKanjiType02;
    }

    public String getUsingKanjiType03() {
        return usingKanjiType03;
    }

    public void setUsingKanjiType03(String usingKanjiType03) {
        this.usingKanjiType03 = usingKanjiType03;
    }

    public String getUsingKanjiTypeText01() {
        return usingKanjiTypeText01;
    }

    public void setUsingKanjiTypeText01(String usingKanjiTypeText01) {
        this.usingKanjiTypeText01 = usingKanjiTypeText01;
    }

    public String getUsingKanjiTypeText02() {
        return usingKanjiTypeText02;
    }

    public void setUsingKanjiTypeText02(String usingKanjiTypeText02) {
        this.usingKanjiTypeText02 = usingKanjiTypeText02;
    }

    public String getUsingKanjiTypeText03() {
        return usingKanjiTypeText03;
    }

    public void setUsingKanjiTypeText03(String usingKanjiTypeText03) {
        this.usingKanjiTypeText03 = usingKanjiTypeText03;
    }

    public Integer getUserBp() {
        return userBp;
    }

    public void setUserBp(Integer userBp) {
        this.userBp = userBp;
    }

    public Integer getUserAp() {
        return userAp;
    }

    public void setUserAp(Integer userAp) {
        this.userAp = userAp;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((key == null) ? 0 : key.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        MdUseKanji other = (MdUseKanji) obj;
        if (key == null) {
            if (other.key != null) {
                return false;
            }
        } else if (!key.equals(other.key)) {
            return false;
        }
        return true;
    }
}
